#ifndef __SOLDIER_H
#define __SOLDIER_H

/*
This file contains everything a soldier may need to do during battle, plus initialization functions for soldiers when armies are created.

Functions
	init		- initialize for a single soldier to be put into the database, return soldier id
	
	attackTarget	- attacks the current target; if no current target, find one then attack
	rest		- soldier rests, regaining health slowly
	retreat		- soldier runs

	findTarget	- finds a new target
	takeDamage	- soldier takes damage; if soldier dies, returns false so the attacker knows to find a new target
*/

#include "Database.h"
#include "utils.h"

namespace Soldier
{
	// initialization
	int init(); // @TODO - include options for soldiers; for now, generic only

	// commands
	void attackTarget(int soldier);
	void rest(int soldier); // @TODO - make dependent on constitution; for now, generic
	void retreat(int soldier); // @TODO - right now everyone is fearless
	
	// utility
	bool takeDamage(int soldier, int damage); // @TODO - much later, pass damage types etc for DR
};

#endif